<?php

/**
 * 会员相关
 */

namespace app\admin\controller;

use think\Db;
use think\response\Json;

class Member extends BaseController
{
    /**
     * 列表视图
     */
    public function index()
    {
        //  获取参数
        $params = input("get.");
        $this->assign("params", $params);
        return view();
    }

    /**
     * 获取列表信息
     */
    public function getList()
    {
        //  获取参数
        $params = input("get.");
        $page = isset($params["page"]) ? $params["page"] : 1;
        $limit = isset($params["limit"]) ? $params["limit"] : 30;
        $offset = ($page - 1) * $limit;
        //  定义查询条件
        $where[] = ["status", '<>', 3];
        if (isset($params["key"]["type"])) {
            $where[] = ["type", "=", $params["key"]["type"]];
        }
        if (isset($params["key"]["search"])) {
            $where[] = ["username|phone", 'like', '%' . $params["key"]["search"] . '%'];
        }
        //  统计查询数据数量
        $count = db("member")->where($where)->count();
        //  查询数据
        $info = db("member")->where($where)->order("create_time desc")->limit($offset, $limit)->select();
        //  定义返回数据
        $arr = ["code" => 0, "msg" => 'true', "data" => $info, "count" => $count, 'params' => $params];
        return json($arr);
    }

    /**
     * 详情
     */
    public function detail()
    {
        //  获取参数
        $params = input("get.");
        $id = isset($params["id"]) ? $params["id"] : '';
        //  定义数据
        $info = [];
        //  参数验证
        if (isset($params["id"])) {
            //  查询数据
            $info = db("member")->where("id", "=", $params["id"])->find();
        }
        //  查询数据
        $this->assign("info", $info);
        return view();
    }

    /**
     * 字段保存
     */
    public function inputChange()
    {
        //  获取参数
        $params = input("post.");
        //  验证参数
        if (isset($params['id']) && !empty($params['id'])) {
            //  更新数据
            db("member")->update($params);
            //  定义返回数据
            $arr = ["code" => 0, "msg" => "操作は成功しました"];
        } else {
            //  定义返回数据
            $arr = ["code" => 1, "msg" => "操作が失敗しました。パラメータがありません"];
        }
        return json($arr);
    }

    /**
     * 删除数据
     */
    public function delete()
    {
        //  获取参数
        $params = input("post.");
        //  验证参数
        if (isset($params["ids"]) && !empty($params["ids"])) {
            //  定义更新条件
            $where["id"] = array("in", $params["ids"]);
            //  更新数据
            db("member")->whereIn('id', $params["ids"])->update(["status" => 3]);
            //  定义返回数据
            $arr = ["code" => 0, "msg" => "正常に削除されました"];
        } else {
            //  定义返回数据
            $arr = ["code" => 1, "msg" => "操作が失敗しました。パラメータがありません"];
        }
        return json($arr);
    }

    public function resetPassword()
    {
        //  获取参数
        $params = input("post.");
        //  验证参数
        if (isset($params["ids"]) && !empty($params["ids"])) {
            //  定义更新条件
            $where["id"] = array("in", $params["ids"]);
            //  更新数据
            db("member")->whereIn('id', $params["ids"])->update(["password" => md5('123456a')]);
            //  定义返回数据
            $arr = ["code" => 0, "msg" => "パスワードのリセットが成功しました"];
        } else {
            //  定义返回数据
            $arr = ["code" => 1, "msg" => "操作が失敗しました。パラメータがありません"];
        }
        return json($arr);
    }

    /**
     * 获取会员编号
     * @return int|string
     */
    public static function getNumber()
    {
        $nums = db("member")->count();
        $nums++;
        $nums = '11' . str_pad($nums, 6, "0", STR_PAD_LEFT);
        return $nums;
    }
}
